1. Field of the Invention
The present invention relates generally to storage area networks.
2. Description of the Related Art
The management of information is becoming an increasingly daunting task in today's environment of data intensive industries and applications. More particularly, the management of raw data storage is becoming more cumbersome and difficult as more companies and individuals are faced with larger and larger amounts of data that must be effectively, efficiently, and reliably maintained. Entities continue to face the necessity of adding more storage, servicing more users, and providing access to more data for larger numbers of users.
The concept of storage area networks or SANs has gained popularity in recent years to meet these increasing demands. Although various definitions of a SAN exist, a SAN can generally be considered a network whose primary purpose is the transfer of data between computer systems and storage elements and among storage elements. A SAN can form an essentially independent network that does not have the same bandwidth limitations as many of its direct-connect counterparts including storage devices connected directly to servers (e.g., with a SCSI connection) and storage devices added directly to a local area network (LAN) using traditional Ethernet interfaces, for example.
In a SAN environment, targets, which can include storage devices (e.g., tape drives and RAID arrays) and other devices capable of storing data, and initiators, which can included servers, personal computing devices, and other devices capable of providing write commands and requests, are generally interconnected via various switches and/or appliances. The connections to the switches and appliances are usually Fibre Channel or iSCSI.
A typical appliance may receive and store data within the appliance, then, with an internal processor for example, analyze and operate on the data in order to forward the data to the appropriate target(s). Such store-and-forward processing can slow down data access, including the times for reading data from and writing data to the storage device(s). Accordingly, switches are often used to connect initiators with appliances, given the large number of initiators and small number of ports included in many appliances. In more current SAN implementations, switches have replaced certain functionality previously preformed by appliances such that appliances are not necessary and can be eliminated from the systems.
Some storage area networks provide for increased availability and reliability of data by performing so called mirroring operations whereby multiple copies of data are maintained in the network. These operations typically involve maintaining data associated with a volume in two or more physical devices connected to a single switch to provide redundant access to the data should one target become unavailable. For example, a mirrored virtual target may route all data to at least two distinct physical storage locations such as by provisioning the target to include mirrored members corresponding to distinct physical devices or locations.
To establish a mirrored virtual target, the data of a selected physical device is typically written to one or more additional storage devices corresponding to different members of the mirrored virtual target in what is often referred to as a synchronization operation. Additionally, the consistency of data storage among mirrored members is often performed by reading the data from one or more physical devices corresponding to a first member of the mirrored target and verifying that data against the data stored in the physical devices corresponding to the remaining mirrored members in what is often referred to as a verification operation.
In storage switches that route data between devices without buffering the data within the switch, there is an inherent risk that the physical devices and/or storage switch (and the ongoing operations occurring at each) can become deadlocked. For example, targets and/or a switch can become deadlocked while reading the data from a source target and writing it to one or more destination targets to synchronize the targets. Similarly, targets and/or a switch can become deadlocked while verifying the data of a source target against the data of destination targets. In addition to deadlock, inconsistencies and false verification failures can occur during these operations.
Accordingly, there is a need for a system and method in storage area networks to address these identified deficiencies and provide for increased reliability and availability of physical devices, switches, and mirrored virtual targets.